我們接下來會建立以下幾個頁面
昨天我們做了查看任務頁面和新增任務表單,今天來做刪除任務的icon。
delete_task
的視圖task.delete()
: 刪除指定的任務。redirect('task')
: 刪除任務後,將用戶重定向回任務列表頁面。
@login_required
def delete_task(request, id):
user = request.user
tasks = Task.objects.filter(user_id=user)
# 取得共享的任務
sharedTasks = SharedTask.objects.filter(Q(user=user) | Q(task__user_id=user))
# 排除共享任務後的我的任務
my_tasks = tasks.exclude(id__in=sharedTasks.values_list('task__id', flat=True))
previous_url = request.META.get('HTTP_REFERER')
task = Task.objects.get(id=id)
add_log(task, user, "刪除")
task.delete()
return redirect('task')
為了讓 Django 知道何時呼叫這個視圖,我們需要在 urls.py
文件中添加對應的路由。
path('task/delete/<slug:id>/',delete_task),
刪除前
詢問是否要刪除
刪除後